# Device tree file description ***Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.*** --- # Overview This document introduces the device tree file structure, location, and modification methods for the Quectel Pi H1 platform. Device tree is a data structure used by the Linux kernel to describe hardware configuration. Understanding the organizational structure of device tree files is crucial for kernel development. # Top-Level device tree The top-level device tree file for Quectel Pi H1 is `qcs6490-idp-pi.dts`, which can be found in the following two locations: - **Recommended modification location** (outside kernel code, convenient for overlay): ```plaintext src/qcom-6.6-overlay/arch/arm64/boot/dts/qcom/qcs6490-idp-pi.dts ``` - **Location within kernel source**: ```plaintext sources/quectel-src/kernel/qcom-6.6/arch/arm64/boot/dts/qcom/qcs6490-idp-pi.dts ``` > **Recommendation**: For all device tree modifications, it is recommended to work on files in the `src/qcom-6.6-overlay` directory. # Common device tree files ## sc7280.dtsi During development, the `sc7280.dtsi` file will be frequently viewed and used. This file contains the following common nodes: - GPIO (General purpose input/output) - SPI (Serial peripheral interface) - I2C (I²C bus) - UART (Serial port) - CPU (Processor) - GPU (Graphics processor) **File path**: ```plaintext sources/quectel-src/kernel/qcom-6.6/arch/arm64/boot/dts/qcom/sc7280.dtsi ``` # External device tree repositories The Qualcomm platform separates drivers and device trees related to display, graphics, camera, video, etc. from the Linux kernel source code, forming independent code repositories. ## View repository information You can download the Yocto project source code according to [Image build](<../Image build/Image build.md>), and obtain specific code repository information by viewing `.bb` files in the `layers/meta-qcom-hwe` directory. **Example: View camera device tree repository** Open the `layers/meta-qcom-hwe/recipes-multimedia/cameradtb/cameradtb_1.0.bb` file, you can see: ```bash SRCPROJECT = "git://git.codelinaro.org/clo/le/platform/vendor/opensource/camera-devicetree.git;protocol=https" SRCBRANCH = "camera-kernel.qclinux.1.0.r1-rel" SRCREV = "08511ff747916576232cc26394bb9c5c6e0ab1f5" ``` **Information description**: - **Repository address**: [https://git.codelinaro.org/clo/le/platform/vendor/opensource/camera-devicetree.git]() - **Branch**: camera-kernel.qclinux.1.0.r1-rel - **Commit version**: 08511ff747916576232cc26394bb9c5c6e0ab1f5 ## Local device tree sub-repository locations To facilitate compilation and use, Quectel Pi H1 places these independent device tree sub-repositories in the `src/devicetree` directory: | **Module** | **Path** | | --- | --- | | Camera | src/devicetree/camera-devicetree | | Display | src/devicetree/display-devicetree | | Graphics | src/devicetree/graphics-devicetree | | Video | src/devicetree/video-devicetree | # Detailed description of device tree for each module ## Camera ### Device tree files - **Camera main configuration**: ```plaintext src/devicetree/camera-devicetree/qcm6490-camera-rb3.dtsi ``` - **Camera sensor configuration**: ```plaintext src/devicetree/camera-devicetree/qcm6490-camera-sensor-rb3.dtsi ``` ### Related recipe files - **Base recipe**: ```plaintext layers/meta-qcom-hwe/recipes-multimedia/cameradtb/cameradtb_1.0.bb ``` - **Extension recipe**: ```plaintext layers/meta-quectel/recipes-multimedia/cameradtb/cameradtb_1.0.bbappend ``` ## Display ### Device tree files - **8-inch screen configuration**: ```plaintext src/devicetree/display-devicetree/display/dsi-panel-waveshare-8inch-video.dtsi ``` - **SDE display main configuration**: ```plaintext src/devicetree/display-devicetree/display/qcm6490-sde-display-pi.dtsi ``` - **SDE display pin configuration**: ```plaintext src/devicetree/display-devicetree/display/qcm6490-sde-display-pinctrl.dtsi ``` - **SDE display general configuration**: ```plaintext src/devicetree/display-devicetree/display/qcm6490-sde-display.dtsi ``` - **Top-Level device tree reference**: ```plaintext src/qcom-6.6-overlay/arch/arm64/boot/dts/qcom/qcs6490-idp-pi.dts ``` ### Related recipe files - **Base recipe**: ```plaintext layers/meta-qcom-hwe/recipes-multimedia/display/qcom-displaydevicetree_git.bb ``` - **Extension recipe**: ```plaintext layers/meta-quectel/recipes-multimedia/display/qcom-displaydevicetree_git.bbappend ``` ## Graphics ### Device tree files - **GPU configuration**: ```plaintext src/devicetree/graphics-devicetree/gpu/qcm6490-graphics.dtsi ``` ### Related recipe files - **Base recipe**: ```plaintext layers/meta-qcom-hwe/recipes-graphics/graphicsdevicetree/qcom-graphicsdevicetree_git.bb ``` - **Extension recipe**: ```plaintext layers/meta-quectel/recipes-graphics/graphicsdevicetree/qcom-graphicsdevicetree_git.bbappend ``` ## Video ### Device tree files - **Video configuration**: ```plaintext src/devicetree/video-devicetree/qcm6490-video.dtsi ``` ### Related recipe files - **Base recipe**: ```plaintext layers/meta-qcom-hwe/recipes-multimedia/video/qcom-videodtb_1.0.bb ``` - **Extension recipe**: ```plaintext layers/meta-quectel/recipes-multimedia/video/qcom-videodtb_1.0.bbappend ``` # Modification recommendations 1. **Prioritize overlay modifications**: When modifying device trees, prioritize working on files in the `src/qcom-6.6-overlay` and `src/devicetree` directories, avoiding direct modifications to kernel source code. 2. **Understand dependencies**: Before modifying device trees, it is recommended to understand the reference relationships between various `.dtsi` files. 3. **Synchronize recipe files**: If you modify device tree repositories or add new device tree files, you need to synchronously update the corresponding `.bb` and `.bbappend` files. 4. **Version control**: It is recommended to use Git to manage all modifications for easy tracking and rollback.